/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/idenger">idenger</a> All rights reserved.
 */
package com.idenger.modules.edu.dao.course;

import com.idenger.modules.edu.entity.course.CourseAndProjectDto;
import com.idenger.modules.edu.entity.course.EduCourse;
import com.idenger.common.persistence.CrudDao;
import com.idenger.common.persistence.Page;
import com.idenger.common.persistence.annotation.MyBatisDao;

import java.util.List;

/**
 * 课程DAO接口
 * @author chenlin
 * @version 2017-11-29
 */
@MyBatisDao
public interface EduCourseDao extends CrudDao<EduCourse>{

    //查询课程项目列表
    Page<CourseAndProjectDto> findAllList(Page<CourseAndProjectDto> page, CourseAndProjectDto courseAndProjectDto);

    //根绝项目ID  查询项目下的课程
    List<EduCourse>   findProjectContentCourse(String projectId);
    
    //查询没有绑定关系（与项目的绑定 ）没有发布的课程
    List<EduCourse>  getEmptyCourse(String projectId);
    
    //查询课程
    EduCourse getCourse(String videoId);
    
    //查询课程
    EduCourse getCourse2(String practivceId);
    
    List<EduCourse> pageByForEnrollAndUserId(EduCourse course);
    
    EduCourse listByForEnrollAndCourseId(String courseId,String userId);
    
    //拿到视频的有效分
    String	getVideoValidScore(String userId,String courseId);
    
    //拿到课程的有效分
    String getPracticeValidScore(String userId,String courseId);
    
    /***
     * 查询该订单下的课程
     * @param orderId
     * @return
     */
    List<EduCourse> courseListByOrderId(String orderId);
    
    List<EduCourse> courseListByEnrollProjectId(String projectId,String userId);
    
    List<EduCourse> creditCertificate(EduCourse eduCourse);
}